[IA64] Fix initialization order for buddy allocator
authorAlex Williamson <alex.williamson@hp.com>
Thu, 31 May 2007 20:47:08 +0000 (14:47 -0600)
committerAlex Williamson <alex.williamson@hp.com>
Thu, 31 May 2007 20:47:08 +0000 (14:47 -0600)
Fix initialization order of buddy allocator to avoid panic
on machines with multi NUMA node.

Signed-off-by: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp>
xen/arch/ia64/linux-xen/setup.c
xen/arch/ia64/xen/xensetup.c

index 153fc58c9e748819f38310e8763f79b6a06c112f..b7f9a0d0ef0053d1f3281784344cdba548cc4afb 100644 (file)
@@ -506,13 +506,6 @@ setup_arch (char **cmdline_p)
        if (early_console_setup(*cmdline_p) == 0)
                mark_bsp_online();
 
-#ifdef XEN
-}
-
-void __init
-late_setup_arch (char **cmdline_p)
-{
-#endif
 #ifdef CONFIG_ACPI_BOOT
        /* Initialize the ACPI boot-time table parser */
        acpi_table_init();
@@ -525,6 +518,13 @@ late_setup_arch (char **cmdline_p)
 # endif
 #endif /* CONFIG_APCI_BOOT */
 
+#ifdef XEN
+}
+
+void __init
+late_setup_arch (char **cmdline_p)
+{
+#endif
 #ifndef XEN
        find_memory();
 #endif
index d40976b46ded7357262df244303fcb3a181fc773..2f1fbb9fc8714391e2a590434c7f1166ab502006 100644 (file)
@@ -433,13 +433,13 @@ void __init start_kernel(void)
 
     alloc_dom0();
 
-    end_boot_allocator();
-
     init_xenheap_pages(__pa(xen_heap_start), xenheap_phys_end);
     printk("Xen heap: %luMB (%lukB)\n",
        (xenheap_phys_end-__pa(xen_heap_start)) >> 20,
        (xenheap_phys_end-__pa(xen_heap_start)) >> 10);
 
+    end_boot_allocator();
+
     late_setup_arch(&cmdline);
 
     scheduler_init();